package A2015;
/*
 * 一副扑克牌（去掉大小王牌，共52张），均匀发给4个人，每个人13张。
这时，小明脑子里突然冒出一个问题：
如果不考虑花色，只考虑点数，也不考虑自己得到的牌的先后顺序，自己手里能拿到的初始牌型组合一共有多少种呢？

请填写该整数，不要填写任何多余的内容或说明文字。

答案:3598180
考点递归，其实前面一直下来都没考到dp和递归，从这角度想，应该会用到了把，

 */
public class _7_牌型种数 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long A=System.currentTimeMillis();
        System.out.println("执行代码块/方法");
        int s = f(13,13);				
        //FunA();
        long B=System.currentTimeMillis();
        //FanbB();
        //long C=System.currentTimeMillis();
        System.out.println("f()运行时间： "+(B-A)+"ms");
        //System.out.println("FunB()运行时间： "+(C-B)+"ms");
        System.out.println(s);
	}
	static int f(int n,int m) {//递归+dp
		if(n==0)
			return m==0?1:0;//对
		if(m==0)//这个属于剪枝把，填空题没有也没事，减少运行时间
			return 1;
		if(m<0)//边界判断
			return 0;
		
		return f(n-1,m) + f(n-1,m-1) + f(n-1,m-2) +f(n-1,m-3)+f(n-1,m-4);
	}
}
